#include <iostream>
#include <algorithm>
using namespace std;
int a[10001];
/**
 * @brief 
 * 给定n个数字,从1到n,要求输出第m小的序列。
 * 输入：数字n和m,l≤n≤1000,1≤m≤10000。
 * 输出：输出第m小的序列。
 * 程序的思路是首先生成一个123…n的最小字典序列，即初始序列，然后用 next_permutation()
 * 一个一个地生成下一个字典序更大的序列。
 * @return int 
 */
int main(){
    int n, m;
    while(cin>>n>>m){
        //生成字典序最小的序列
        for(int i = 1; i <= n; i++){
            a[i] = i;
        }
        int b = 1;
        do{
            if(b == m) break;
            b++;
        }while(next_permutation(a + 1, a + n + 1));//a[1] - a[n] 的下一个字典序更大的排列

        for(int i = 1; i < n; i++){
            cout<<a[i]<<" ";
        }
        cout<<a[n]<<endl;
    }
    return 0;
}